package com.regulareport.form.mapper;

import com.regulareport.common.core.domain.entity.ReportIndexResult;
import org.apache.ibatis.annotations.Param;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.List;

/**
 * 指标结果Mapper接口
 * 
 * @author ruoyi
 * @date 2025-09-03
 */
public interface ReportIndexResultMapper 
{

    /**
     * 查询指标结果
     * 
     * @param pkId 指标结果主键
     * @return 指标结果
     */
    public ReportIndexResult selectReportIndexResultByPkId(Long pkId);

    /**
     * 查询指标结果列表
     * 
     * @param reportIndexResult 指标结果
     * @return 指标结果集合
     */
    public List<ReportIndexResult> selectReportIndexResultList(ReportIndexResult reportIndexResult);

    /**
     * 新增指标结果
     * 
     * @param reportIndexResult 指标结果
     * @return 结果
     */
    public int insertReportIndexResult(ReportIndexResult reportIndexResult);

    /**
     * 修改指标结果
     * 
     * @param reportIndexResult 指标结果
     * @return 结果
     */
    public int updateReportIndexResult(ReportIndexResult reportIndexResult);

    /**
     * 删除指标结果
     * 
     * @param pkId 指标结果主键
     * @return 结果
     */
    public int deleteReportIndexResultByPkId(Long pkId);


    /**
     * 批量删除指标结果
     * 
     * @param pkIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteReportIndexResultByPkIds(Long[] pkIds);

    /**
     * 批量新增指标结果
     *
     * @param reportIndexResult 指标结果
     * @return 结果
     */
    public int insertReportIndexResultBatch(@Param("list") List<ReportIndexResult> reportIndexResult);

    void deleteReportIndexResultByReportFormId(@Param("id") Long reportId, @Param("d") Date parse, @Param("n") String deptNum);

    public List<ReportIndexResult> selectReportIndexResultListByDeptLevel(@Param("list") String[] levels, @Param("reportFormNo") String reportFormNo);

    void insertBLReportIndexResultBatch(@Param("list") List<ReportIndexResult> list);

    void insertB0ReportIndexResultBatch(@Param("list") List<ReportIndexResult> list);
}
